package com.ruoyi.rsikManage.mapper;

import com.ruoyi.rsikManage.domain.BroadCast;
import com.ruoyi.rsikManage.domain.vo.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
@Mapper
public interface BroadcastMapper {
    List<BroadCast> selectBroadcastList();

    List<BroadCast> selectBroadcastListForUnitCodes(BroadCast broadCast);

    List<BroadCast> selectBroadcastListByBroadCast(BroadCast broadCast);

    void mergeBroadCastListToBroadCastTable(@Param("list") List<BroadCast> broadCastList);

    void deleteBroadCastNotInList(@Param("list") List<BroadCast> broadCastList);

    BroadcastAndMonitorsRelResp selectBroadcastAndMonitorsAssociation(Integer broadcastId);

    void deleteBroadcastAndMonitorsAssociation(Integer broadcastId);

    void deleteBroadcastAndMonitorsAssociationForUnitCodes(@Param("broadcastId")Integer broadcastId,@Param("unitCode")Long unitCode);


    void insertBroadcastAndMonitorsAssociation(@Param("broadcastId") Integer broadcastId, @Param("monitorIds") List<String> monitorIds);

    void insertBroadcastAndMonitorsAssociationForUnitCodes(@Param("unitCode")Long unitCode,@Param("broadcastId") Integer broadcastId, @Param("monitorIds") List<String> monitorIds);

    List<BroadCast> selectMonitorAssociatedBroadcasts(String monitorId);

    List<BroadCast> selectMonitorAssociatedBroadcastsForUnitCodes(@Param("monitorId")String monitorId,@Param("unitCode")Long unitCode);

    BroadcastAndEquipsRelResp selectBroadcastAndEquipAssociation(Integer broadcastId);

    List<BroadCast> selectEquipAssociatedBroadcasts(String equipCode);

    void deleteBroadcastAndEquipsAssociation(Integer broadcastId);

    void insertBroadcastAndEquipsAssociation(@Param("broadcastId") Integer broadcastId,@Param("equips") List<String> equips);

    List<GisBroadcastVo> selectAllGisBroadcasts(BroadCast broadcast);

    List<GisBroadcastVo> selectGisBroadcastsHasCoordinates();

    void updateGisBroadcastsCoordinates(GisBroadcastVo gisBroadcastVo);

    void updateGisBroadcasts3DCoordinates(GisBroadcasts3DVo gisBroadcasts3DVo);

    List<GisBroadcasts3DVo> gisBroadcastsHas3DCoordinates();

    List<GisBroadcasts3DVo> selectAllBroadcasts3D(GisBroadcasts3DVo gisBroadcasts3DVo);
}
